from dataclasses import dataclass
from core.basic.skill import 技能
from core.basic.character import Character
from core.basic.skill import 主动技能, 被动技能

class 收招技能(主动技能):
    终结data0 = []
    终结hit0 = 0
    终结power0 = 1

    终结data1 = []
    终结hit1 = 0
    终结power1 = 1

    形态 = ['收招','非收']

    def 等效百分比(self, **argv):
        武器类型 = argv.get('武器类型', '')
        char: Character = argv.get('char', {})
        终结追击 = char.get_skill_by_name("终结追击")
        self.终结power0 = self.终结power1 = 终结追击.终结追击倍率()*终结追击.终结追击倍率1(武器类型)*char.get_skill_by_name("双剑精通").终结追击倍率(武器类型)
        return super().等效百分比(**argv)

    def 基础百分比(self, 类型, 等级):
        百分比 = super().基础百分比(类型, 等级)
        if 类型 == '直伤':
            name = '终结'
            for i in range(0, 2):
                data = getattr(self, '{}data{}'.format(name, i), [])
                if 等级 < len(data) and 等级 > 0:
                    hit = getattr(self, '{}hit{}'.format(name, i), 1)
                    power = getattr(self, '{}power{}'.format(name, i), 1)
                    百分比 += data[等级] * hit * power
        return 百分比

    def 形态变更(self, 形态, char):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == '收招':
            self.终结hit0 = 1
            self.终结hit1 = 1
        if 形态 == '非收':
            self.终结hit0 = 0
            self.终结hit1 = 0

class 技能0(主动技能):
    名称 = '终结追击'
    所在等级 = 15
    等级上限 = 30
    学习间隔 = 2
    等级精通 = 20
    是否有伤害 = 0
    MP = [18, 56]

    def 终结追击倍率(self):
        if self.等级 == 0:
            return 0.0
        else:
            return round(0.79 + 0.02 * self.等级, 5)

    def 终结追击倍率1(self, 武器类型):
        if self.等级 == 0:
            return 0.0
        elif 武器类型 == '匕首': # 1.00, 1.25, 1.55, 1.95, 2.50, 3.25, 4.25;双剑最多6星
            return 4.25
        elif 武器类型 == '双剑': # 1.00, 1.25, 1.55, 1.95, 2.50, 3.25, 4.25;双剑最多6星
            return 3.25
        else :
            return 0.0



class 技能1(收招技能):
    名称 = '双刃穿刺'
    备注 = '单体'
    所在等级 = 20
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [47, 518]
    # 本体
    data0 = [int(i) for i in [0, 636, 699, 764, 829, 894, 957, 1022, 1087, 1151, 1215, 1280, 1345, 1410, 1473, 1538, 1602, 1668, 1731, 1796, 1861, 1924, 1989, 2054, 2120, 2182, 2247, 2313, 2378, 2440, 2506, 2571, 2636, 2699, 2765, 2829, 2894, 2957, 3022, 3087, 3151, 3216, 3280, 3345, 3409, 3473, 3538, 3603, 3668, 3731, 3796, 3860, 3924, 3990, 4054, 4119, 4182, 4247, 4311, 4378, 4439, 4506, 4571, 4635, 4699, 4765, 4829, 4894, 4957, 5022, 5086]]
    hit0 = 1
    data1 = [int(i) for i in [0, 953, 1049, 1147, 1243, 1339, 1436, 1532, 1632, 1728, 1824, 1922, 2018, 2114, 2211, 2308, 2404, 2502, 2598, 2696, 2792, 2888, 2985, 3081, 3178, 3275, 3372, 3468, 3566, 3662, 3758, 3857, 3953, 4050, 4146, 4244, 4341, 4437, 4533, 4630, 4727, 4824, 4920, 5016, 5115, 5211, 5307, 5404, 5501, 5597, 5694, 5790, 5886, 5986, 6082, 6180, 6276, 6372, 6469, 6565, 6661, 6759, 6856, 6953, 7050, 7146, 7243, 7339, 7435, 7533, 7629]]
    hit1 = 1
    data2 = [int(i) for i in [0, 1271, 1399, 1530, 1658, 1788, 1916, 2045, 2173, 2304, 2432, 2562, 2690, 2819, 2947, 3079, 3205, 3337, 3465, 3594, 3722, 3852, 3981, 4111, 4239, 4368, 4496, 4626, 4754, 4885, 5013, 5143, 5271, 5401, 5529, 5660, 5788, 5917, 6045, 6175, 6303, 6434, 6562, 6691, 6819, 6950, 7077, 7209, 7337, 7466, 7594, 7724, 7852, 7981, 8111, 8240, 8368, 8498, 8626, 8755, 8884, 9015, 9143, 9273, 9401, 9530, 9659, 9789, 9917, 10047, 10175]]
    hit2 = 1
    # 终结追击
    终结data0 = [int(i) for i in [0, 571, 630, 688, 747, 804, 862, 920, 978, 1036, 1093, 1151, 1210, 1268, 1326, 1383, 1442, 1500, 1559, 1617, 1675, 1732, 1790, 1848, 1906, 1964, 2021, 2081, 2139, 2197, 2256, 2315, 2373, 2430, 2488, 2546, 2604, 2662, 2719, 2778, 2836, 2894, 2952, 3009, 3068, 3127, 3185, 3243, 3301, 3358, 3416, 3474, 3533, 3591, 3648, 3706, 3764, 3822, 3883, 3941, 3999, 4056, 4114, 4172, 4230, 4289, 4346, 4404, 4462, 4520, 4578]]
    终结hit0 = 1
    TP成长 = 0.1
    TP上限 = 7
    CD = 7.0
    演出时间 = 0.2


class 技能2(收招技能):
    名称 = '绝杀斩'
    所在等级 = 20
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [47, 518]
    # 本体
    data0 = [int(i) for i in [0, 2614, 2878, 3143, 3409, 3675, 3941, 4206, 4469, 4735, 5001, 5267, 5531, 5797, 6062, 6327, 6593, 6858, 7123, 7388, 7654, 7918, 8184, 8449, 8714, 8980, 9246, 9510, 9776, 10040, 10306, 10571, 10837, 11103, 11366, 11631, 11897, 12163, 12429, 12695, 12957, 13223, 13489, 13755, 14021, 14283, 14549, 14815, 15081, 15347, 15613, 15875, 16141, 16407, 16673, 16938, 17202, 17467, 17733, 17998, 18264, 18530, 18794, 19058, 19324, 19590, 19856, 20120, 20386, 20650, 20916]]
    hit0 = 1
    # 终结追击
    终结data0 = [int(i) for i in [0, 80, 85, 93, 102, 109, 118, 126, 134, 140, 150, 157, 166, 173, 182, 190, 196, 204, 212, 221, 228, 237, 243, 254, 260, 269, 277, 285, 293, 301, 307, 316, 324, 331, 341, 348, 357, 364, 372, 380, 388, 395, 405, 412, 418, 427, 434, 444, 451, 459, 468, 476, 482, 491, 499, 508, 515, 525, 532, 538, 547, 554, 563, 571, 579, 586, 596, 602, 611, 618, 627]]
    终结hit0 = 1
    终结data1 = [int(i) for i in [0, 148, 163, 176, 192, 207, 223, 237, 254, 267, 284, 297, 312, 329, 342, 358, 372, 388, 404, 417, 433, 447, 463, 478, 494, 508, 522, 538, 552, 569, 583, 598, 614, 627, 643, 658, 673, 688, 705, 718, 735, 748, 763, 780, 793, 810, 823, 839, 855, 868, 884, 899, 914, 928, 945, 959, 973, 989, 1003, 1020, 1034, 1049, 1065, 1078, 1094, 1109, 1124, 1140, 1156, 1169, 1186]]
    终结hit1 = 3
    TP成长 = 0.1
    TP上限 = 7
    CD = 7.0
    演出时间 = 0.2

    def 形态变更(self, 形态, char):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == '收招':
            self.终结hit0 = 1
            self.终结hit1 = 3
        if 形态 == '非收':
            self.终结hit0 = 0
            self.终结hit1 = 0


class 技能3(收招技能):
    名称 = '旋舞斩'
    所在等级 = 20
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [25, 273]
    # 本体
    data0 = [int(i) for i in [0, 2476, 2729, 2979, 3231, 3481, 3733, 3985, 4235, 4488, 4739, 4990, 5242, 5492, 5744, 5994, 6246, 6499, 6749, 7001, 7251, 7503, 7755, 8005, 8258, 8508, 8760, 9012, 9262, 9514, 9764, 10016, 10269, 10519, 10771, 11021, 11273, 11525, 11775, 12028, 12278, 12530, 12782, 13032, 13284, 13538, 13788, 14040, 14291, 14542, 14794, 15044, 15297, 15549, 15799, 16051, 16301, 16553, 16804, 17055, 17308, 17558, 17810, 18061, 18312, 18563, 18814, 19067, 19318, 19569, 19821]]
    hit0 = 1
    # 终结追击
    终结data0 = [int(i) for i in [0, 496, 545, 595, 646, 696, 747, 796, 846, 897, 947, 998, 1048, 1099, 1148, 1198, 1249, 1299, 1350, 1399, 1451, 1500, 1550, 1601, 1651, 1702, 1752, 1801, 1852, 1902, 1953, 2002, 2054, 2103, 2154, 2204, 2254, 2305, 2355, 2405, 2455, 2505, 2556, 2605, 2657, 2706, 2757, 2807, 2858, 2908, 2958, 3009, 3058, 3109, 3159, 3208, 3260, 3309, 3360, 3410, 3461, 3511, 3562, 3612, 3661, 3712, 3762, 3813, 3862, 3912, 3963]]
    终结hit0 = 1
    TP成长 = 0.1
    TP上限 = 7
    CD = 7.0
    演出时间 = 0.1

    形态 = ['收x7','收x6','收x5','收x4','收x3','收x2','收x1','非收']

    def 形态变更(self, 形态, char):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == '收x7':
            self.终结hit0 = 7
        if 形态 == '收x6':
            self.终结hit0 = 6
        if 形态 == '收x5':
            self.终结hit0 = 5
        if 形态 == '收x4':
            self.终结hit0 = 4
        if 形态 == '收x3':
            self.终结hit0 = 3
        if 形态 == '收x2':
            self.终结hit0 = 2
        if 形态 == '收x1':
            self.终结hit0 = 1
        if 形态 == '非收':
            self.终结hit0 = 0

class 技能4(被动技能):
    名称 = '匕首精通'
    所在等级 = 20
    等级上限 = 30
    基础等级 = 20
    冷却关联技能 = ['所有']
    data0 = [0, 36, 53, 70, 87, 104, 121, 138, 155, 172, 189, 206, 223, 240, 257, 274, 291, 308, 325, 342, 359, 387, 415, 443, 471, 499, 527, 555, 583, 611, 639, 667, 695, 723, 751, 779, 807, 835,
             863, 891, 919, 947, 975, 1003, 1031, 1059, 1087, 1115, 1143, 1171, 1199, 1227, 1255, 1283, 1311, 1339, 1367, 1395, 1423, 1451, 1479, 1507, 1535, 1563, 1591, 1619, 1647, 1675, 1703, 1731, 1759]
    data1 = [0, 10, 13, 16, 19, 22, 25, 28, 31, 34, 37, 40, 43, 46, 49, 52, 55, 58, 61, 64, 67, 70, 73, 76, 79, 82, 85, 88, 91, 94, 97, 100, 103, 106, 109, 112, 115, 118,
             121, 124, 127, 130, 133, 136, 139, 142, 145, 148, 151, 154, 157, 160, 163, 166, 169, 172, 175, 178, 181, 184, 187, 190, 193, 196, 199, 202, 205, 208, 211, 214, 217]

    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '匕首':
            return 1.0
        else :
            return round(1 + self.data0[self.等级] / 1000, 5)

    def CD缩减倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '匕首':
            return 1.0
        else:
            return round(1 - self.data1[self.等级] / 1000, 5)


class 技能5(被动技能):
    名称 = '双剑精通'
    所在等级 = 20
    等级上限 = 30
    基础等级 = 20
    data0 = [0, 36, 53, 70, 87, 104, 121, 138, 155, 172, 189, 206, 223, 240, 257, 274, 291, 308, 325, 342, 359, 387, 415, 443, 471, 499, 527, 555, 583, 611, 639, 667, 695, 723, 751, 779, 807, 835,
             863, 891, 919, 947, 975, 1003, 1031, 1059, 1087, 1115, 1143, 1171, 1199, 1227, 1255, 1283, 1311, 1339, 1367, 1395, 1423, 1451, 1479, 1507, 1535, 1563, 1591, 1619, 1647, 1675, 1703, 1731, 1759]
    data1 = [0, 22, 23, 25, 26, 27, 28, 29, 31, 32, 33, 34, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 48, 49, 50, 51, 52, 54, 55, 56, 57, 59, 60, 61, 62,
             63, 65, 66, 67, 68, 69, 71, 72, 73, 74, 75, 77, 78, 79, 80, 82, 83, 84, 85, 86, 88, 89, 90, 91, 92, 94, 95, 96, 97, 98, 100, 101, 102, 103, 104, 106]

    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '双剑':
            return 1.0
        else :
            return round(1 + self.data0[self.等级] / 1000, 5)


    def 终结追击倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '双剑':
            return 1.0
        else :
            return round(1 + self.data1[self.等级] / 100, 5)


class 技能6(收招技能):
    名称 = '旋刃'
    所在等级 = 25
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [45, 469]
    # 本体
    data0 = [int(i) for i in [0, 278, 308, 336, 364, 393, 420, 450, 478, 506, 537, 565, 592, 620, 648, 679, 707, 733, 762, 790, 821, 849, 876, 904, 934, 963, 991, 1019, 1046, 1076, 1105, 1133, 1161, 1191, 1218, 1245, 1275, 1304, 1333, 1361, 1387, 1417, 1446, 1475, 1503, 1529, 1559, 1588, 1617, 1645, 1673, 1702, 1730, 1758, 1787, 1816, 1844, 1872, 1900, 1929, 1958, 1987, 2014, 2042, 2071, 2100, 2129, 2157, 2184, 2214, 2242]]
    hit0 = 3
    data1 = [int(i) for i in [0, 385, 425, 463, 503, 540, 580, 620, 660, 698, 737, 775, 815, 856, 895, 934, 972, 1010, 1050, 1090, 1130, 1167, 1207, 1245, 1285, 1325, 1362, 1403, 1442, 1481, 1520, 1559, 1597, 1638, 1677, 1716, 1755, 1794, 1832, 1872, 1912, 1951, 1989, 2029, 2067, 2107, 2146, 2186, 2224, 2264, 2302, 2342, 2380, 2420, 2460, 2499, 2538, 2577, 2616, 2654, 2695, 2734, 2773, 2811, 2851, 2889, 2930, 2969, 3008, 3046, 3086]]
    hit1 = 3
    data2 = [int(i) for i in [0, 526, 579, 632, 686, 739, 790, 846, 900, 951, 1006, 1058, 1113, 1165, 1219, 1272, 1326, 1379, 1433, 1486, 1538, 1592, 1645, 1698, 1753, 1805, 1860, 1912, 1966, 2020, 2073, 2125, 2180, 2234, 2285, 2340, 2392, 2446, 2499, 2553, 2607, 2660, 2713, 2767, 2820, 2872, 2926, 2979, 3032, 3087, 3139, 3193, 3246, 3300, 3352, 3407, 3459, 3514, 3568, 3619, 3674, 3726, 3780, 3833, 3887, 3940, 3994, 4047, 4100, 4154, 4206]]
    hit2 = 3
    # 终结追击
    终结data0 = [int(i) for i in [0, 237, 262, 286, 311, 335, 360, 384, 406, 431, 455, 480, 504, 528, 553, 577, 602, 624, 648, 673, 697, 722, 746, 771, 795, 819, 843, 866, 890, 915, 939, 964, 988, 1013, 1036, 1060, 1085, 1109, 1134, 1158, 1181, 1206, 1230, 1254, 1278, 1303, 1327, 1351, 1375, 1399, 1424, 1447, 1471, 1496, 1520, 1545, 1569, 1592, 1617, 1640, 1665, 1689, 1713, 1738, 1762, 1786, 1810, 1833, 1858, 1882, 1907]]
    终结hit0 = 3
    TP成长 = 0.1
    TP上限 = 7
    CD = 8.0
    演出时间 = 0.2

    def 形态变更(self, 形态, char):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == '收招':
            self.终结hit0 = 3
            self.终结hit1 = 0
        if 形态 == '非收':
            self.终结hit0 = 0
            self.终结hit1 = 0

class 技能7(收招技能):
    名称 = '剑刃风暴'
    所在等级 = 30
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [65, 700]
    # 本体
    data0 = [int(i) for i in [0, 521, 576, 627, 680, 733, 786, 840, 893, 946, 998, 1050, 1105, 1157, 1210, 1263, 1315, 1368, 1422, 1475, 1528, 1581, 1633, 1688, 1740, 1792, 1846, 1898, 1953, 2005, 2057, 2111, 2163, 2216, 2270, 2323, 2375, 2428, 2481, 2534, 2588, 2640, 2694, 2745, 2799, 2853, 2905, 2958, 3011, 3062, 3117, 3170, 3223, 3275, 3329, 3381, 3436, 3488, 3540, 3594, 3647, 3698, 3753, 3805, 3858, 3911, 3965, 4018, 4071, 4123, 4176]]
    hit0 = 10
    # 终结追击
    终结data0 = [int(i) for i in [0, 1044, 1148, 1255, 1362, 1465, 1572, 1679, 1786, 1890, 1997, 2104, 2207, 2314, 2421, 2526, 2632, 2738, 2846, 2949, 3055, 3163, 3268, 3373, 3481, 3586, 3691, 3798, 3904, 4009, 4117, 4222, 4326, 4435, 4539, 4644, 4752, 4858, 4964, 5070, 5175, 5282, 5387, 5493, 5599, 5705, 5810, 5916, 6024, 6128, 6234, 6342, 6445, 6551, 6659, 6763, 6869, 6977, 7083, 7186, 7294, 7400, 7504, 7612, 7718, 7822, 7929, 8035, 8142, 8248, 8353]]
    终结hit0 = 1
    CD = 12.0
    TP成长 = 0.1
    TP上限 = 7
    演出时间 = 0.5

    形态 = ["收x10","收x8","非收x10","非收x8"]

    def 形态变更(self, 形态, char):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "收x10":
            self.hit0 = 10
            self.终结hit0 = 1
        if 形态 == "收x8":
            self.hit0 = 8
            self.终结hit0 = 1
        if 形态 == "非收x10":
            self.hit0 = 10
            self.终结hit0 = 0
        if 形态 == "非收x8":
            self.hit0 = 8
            self.终结hit0 = 0


class 技能8(收招技能):
    名称 = '雷光刃影'
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    # 本体
    # 抓取
    data0 = [int(i) for i in [0, 804, 886, 967, 1050, 1131, 1214, 1295, 1376, 1459, 1540, 1622, 1703, 1785, 1866, 1949, 2030, 2112, 2193, 2275, 2356, 2439, 2520, 2602, 2683, 2765, 2846, 2927, 3010, 3091, 3174, 3255, 3338, 3419, 3501, 3582, 3664, 3745, 3828, 3909, 3991, 4072, 4154, 4235, 4317, 4399, 4481, 4562, 4644, 4725, 4806, 4889, 4970, 5052, 5133, 5217, 5298, 5380, 5461, 5543, 5624, 5706, 5788, 5870, 5951, 6033, 6114, 6196, 6278, 6360, 6441]]
    hit0 = 0
    data1 = [int(i) for i in [0, 2415, 2660, 2905, 3150, 3395, 3641, 3886, 4130, 4376, 4620, 4866, 5110, 5356, 5601, 5847, 6091, 6336, 6581, 6826, 7071, 7316, 7563, 7807, 8052, 8297, 8542, 8787, 9031, 9277, 9523, 9767, 10013, 10257, 10503, 10747, 10993, 11237, 11484, 11728, 11973, 12218, 12463, 12708, 12953, 13197, 13443, 13688, 13934, 14178, 14424, 14668, 14914, 15158, 15403, 15650, 15894, 16140, 16384, 16629, 16874, 17118, 17364, 17610, 17855, 18100, 18345, 18590, 18835, 19080, 19324]]
    hit1 = 0
    # 非抓
    data2 = [int(i) for i in [0, 4830, 5322, 5812, 6300, 6790, 7282, 7772, 8262, 8752, 9243, 9733, 10222, 10712, 11203, 11693, 12183, 12673, 13164, 13653, 14143, 14633, 15124, 15614, 16104, 16594, 17085, 17574, 18064, 18554, 19045, 19535, 20025, 20515, 21007, 21496, 21985, 22475, 22967, 23457, 23947, 24437, 24926, 25417, 25907, 26397, 26887, 27378, 27868, 28358, 28847, 29338, 29828, 30318, 30808, 31299, 31789, 32279, 32768, 33259, 33749, 34239, 34729, 35220, 35710, 36199, 36689, 37181, 37670, 38160, 38650]]
    hit2 = 1
    data3 = [int(i) for i in [0, 3221, 3547, 3873, 4200, 4527, 4854, 5181, 5508, 5834, 6161, 6488, 6816, 7142, 7468, 7794, 8121, 8448, 8776, 9102, 9429, 9756, 10082, 10409, 10737, 11062, 11389, 11716, 12042, 12369, 12697, 13024, 13350, 13677, 14004, 14330, 14658, 14984, 15310, 15637, 15964, 16290, 16617, 16945, 17271, 17598, 17925, 18251, 18577, 18905, 19232, 19558, 19885, 20212, 20538, 20866, 21193, 21519, 21846, 22173, 22498, 22826, 23153, 23480, 23806, 24133, 24459, 24787, 25114, 25441, 25767]]
    hit3 = 1
    # 终结追击
    终结data0 = [int(i) for i in [0, 1609, 1773, 1936, 2099, 2263, 2427, 2591, 2754, 2917, 3081, 3244, 3407, 3570, 3734, 3897, 4060, 4224, 4388, 4552, 4714, 4877, 5041, 5204, 5367, 5531, 5694, 5857, 6021, 6184, 6348, 6512, 6675, 6838, 7002, 7165, 7328, 7492, 7655, 7818, 7982, 8144, 8307, 8472, 8635, 8799, 8962, 9125, 9289, 9452, 9615, 9778, 9942, 10105, 10268, 10433, 10596, 10760, 10923, 11086, 11250, 11413, 11576, 11740, 11903, 12065, 12229, 12393, 12556, 12720, 12883]]
    终结hit0 = 1
    CD = 15.0
    TP成长 = 0.1
    TP上限 = 5
    演出时间 = 0.3

    MP = [91, 763]
    无色消耗 = 1


class 技能9(收招技能):
    名称 = '螺旋穿刺'
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    # 本体
    data0 = [int(i) for i in [0, 767, 846, 924, 1002, 1079, 1160, 1236, 1314, 1391, 1472, 1549, 1627, 1703, 1782, 1860, 1938, 2015, 2095, 2174, 2250, 2327, 2406, 2486, 2563, 2642, 2718, 2796, 2874, 2954, 3031, 3109, 3186, 3265, 3342, 3420, 3501, 3578, 3656, 3732, 3809, 3890, 3968, 4045, 4124, 4201, 4279, 4356, 4436, 4514, 4592, 4672, 4747, 4824, 4904, 4983, 5060, 5138, 5215, 5292, 5372, 5450, 5528, 5607, 5683, 5761, 5839, 5919, 5996, 6074, 6154]]
    hit0 = 3
    data1 = [int(i) for i in [0, 2691, 2965, 3237, 3509, 3783, 4055, 4328, 4603, 4876, 5149, 5421, 5695, 5968, 6241, 6515, 6788, 7062, 7335, 7608, 7880, 8154, 8426, 8698, 8971, 9245, 9518, 9791, 10065, 10338, 10609, 10885, 11157, 11430, 11703, 11977, 12250, 12523, 12796, 13069, 13342, 13617, 13886, 14159, 14432, 14707, 14980, 15253, 15527, 15800, 16072, 16346, 16619, 16892, 17167, 17440, 17713, 17983, 18258, 18531, 18804, 19078, 19349, 19622, 19896, 20169, 20442, 20717, 20990, 21260, 21533]]
    hit1 = 1
    # 终结追击
    终结data0 = [int(i) for i in [0, 1615, 1777, 1943, 2105, 2270, 2433, 2598, 2761, 2926, 3089, 3252, 3417, 3579, 3744, 3909, 4072, 4237, 4400, 4564, 4728, 4892, 5055, 5220, 5383, 5547, 5711, 5875, 6038, 6203, 6366, 6532, 6694, 6858, 7021, 7186, 7349, 7514, 7678, 7841, 8006, 8169, 8332, 8496, 8659, 8826, 8987, 9152, 9314, 9480, 9642, 9806, 9972, 10134, 10298, 10462, 10626, 10790, 10953, 11118, 11281, 11446, 11608, 11774, 11936, 12101, 12266, 12429, 12594, 12756, 12921]]
    终结hit0 = 1
    CD = 15.0
    TP成长 = 0.1
    TP上限 = 5
    演出时间 = 0.5
    是否有护石 = 1

    MP = [128, 1072]
    无色消耗 = 1

    形态 = ["常规", "理论"]

    def 形态变更(self, 形态, char):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "常规":
            self.hit0 = 3
            self.hit1 = 1
            if '螺旋穿刺' in char.护石栏:
                self.hit0 = 12
        else :
            形态 == "理论"
            if 形态 == "理论":
                self.hit0 = 6
                self.hit1 = 1
                if '螺旋穿刺' in char.护石栏:
                    self.hit0 = 19

    def 装备护石(self):
        self.power0 = 0.5*1.47



class 技能10(收招技能):
    名称 = '疾风乱舞'
    所在等级 = 40
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    # 本体
    #角色11下，分身4下
    data0 = [int(i) for i in [0, 763, 839, 917, 995, 1071, 1149, 1228, 1304, 1381, 1460, 1536, 1613, 1692, 1768, 1846, 1924, 2001, 2078, 2155, 2232, 2310, 2387, 2465, 2543, 2620, 2697, 2774, 2852, 2929, 3006, 3084, 3162, 3239, 3316, 3394, 3471, 3548, 3625, 3704, 3781, 3858, 3936, 4013, 4089, 4167, 4246, 4322, 4400, 4477, 4554, 4632, 4709, 4787, 4865, 4942, 5018, 5097, 5174, 5250, 5328, 5407, 5483, 5561, 5639, 5715, 5793, 5870, 5948, 6026, 6103]]
    hit0 = 11
    data1 = [int(i) for i in [0, 759, 836, 914, 991, 1068, 1144, 1221, 1299, 1375, 1452, 1530, 1606, 1683, 1760, 1837, 1915, 1991, 2069, 2146, 2222, 2301, 2378, 2454, 2532, 2609, 2686, 2764, 2840, 2917, 2994, 3071, 3148, 3225, 3302, 3379, 3455, 3533, 3611, 3687, 3765, 3842, 3918, 3995, 4073, 4149, 4226, 4303, 4380, 4457, 4534, 4613, 4690, 4767, 4844, 4921, 4997, 5075, 5152, 5228, 5306, 5384, 5460, 5538, 5614, 5691, 5768, 5845, 5922, 5998, 6076]]
    hit1 = 4
    data2 = [int(i) for i in [0, 1365, 1504, 1642, 1779, 1918, 2057, 2196, 2333, 2473, 2612, 2749, 2888, 3027, 3166, 3303, 3443, 3582, 3720, 3858, 3996, 4135, 4272, 4411, 4551, 4689, 4827, 4966, 5105, 5243, 5381, 5521, 5659, 5798, 5936, 6075, 6213, 6350, 6489, 6627, 6767, 6905, 7044, 7182, 7320, 7459, 7599, 7737, 7875, 8014, 8152, 8291, 8429, 8568, 8705, 8844, 8983, 9121, 9260, 9398, 9537, 9675, 9814, 9953, 10091, 10230, 10369, 10507, 10645, 10784, 10924]]
    hit2 = 1
    # 终结追击
    终结data0 = [int(i) for i in [0, 2559, 2818, 3077, 3337, 3596, 3855, 4116, 4376, 4635, 4893, 5153, 5412, 5673, 5931, 6192, 6451, 6710, 6970, 7229, 7489, 7748, 8009, 8268, 8528, 8787, 9047, 9306, 9565, 9826, 10085, 10345, 10604, 10864, 11123, 11383, 11642, 11903, 12162, 12421, 12681, 12940, 13200, 13458, 13720, 13979, 14239, 14497, 14756, 15016, 15275, 15534, 15795, 16055, 16314, 16573, 16833, 17093, 17352, 17612, 17872, 18132, 18390, 18650, 18910, 19169, 19429, 19689, 19949, 20208, 20467]]
    终结hit0 = 1
    CD = 25.0
    TP成长 = 0.1
    TP上限 = 5
    是否有护石 = 1
    演出时间 = 0.6

    MP = [164, 1376]
    无色消耗 = 1

    def 装备护石(self):
        self.hit1 = 8
        self.power1 = 1.44
        self.终结power0 = 1.08
        self.CDR = 0.9



class 技能11(主动技能):
    名称 = '死亡风暴'
    是否主动 = 0
    所在等级 = 40
    等级上限 = 70
    学习间隔 = 3
    等级精通 = 60

    data0 = [int(i) for i in [0, 522, 576, 630, 686, 738, 793, 847, 900, 956, 1010, 1065, 1117, 1172, 1227, 1279, 1333, 1388, 1440, 1495, 1550, 1605, 1657, 1712, 1766, 1822, 1877, 1928, 1981, 2035, 2089, 2145, 2200, 2252, 2307, 2361, 2417, 2469, 2524, 2578, 2630, 2684, 2740, 2792, 2847, 2901, 2955, 3012, 3064, 3119, 3172, 3226, 3278, 3334, 3387, 3442, 3495, 3550, 3606, 3659, 3714, 3767, 3821, 3876, 3931, 3982, 4037, 4090, 4145, 4199, 4254]]
    hit0 = 15
    CD = 12.0
    演出时间 = 0.5
    CP武器 = False

    形态 = ["正背","中心"]

    def 形态变更(self, 形态, char):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "正背":
            self.hit0 = 15
        if 形态 == "中心":
            self.hit0 = 30
        if self.CP武器:
            self.hit0 = 20



class 技能12(收招技能):
    名称 = '绝命瞬狱杀'
    所在等级 = 45
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    # 本体
    data0 = [int(i) for i in [0, 2109, 2322, 2537, 2751, 2963, 3179, 3392, 3606, 3820, 4036, 4248, 4462, 4676, 4890, 5104, 5317, 5532, 5746, 5959, 6173, 6389, 6601, 6816, 7030, 7242, 7458, 7671, 7886, 8099, 8314, 8527, 8742, 8956, 9169, 9383, 9596, 9811, 10025, 10239, 10452, 10668, 10880, 11096, 11309, 11521, 11737, 11952, 12165, 12378, 12593, 12806, 13021, 13235, 13449, 13662, 13878, 14090, 14303, 14519, 14731, 14947, 15159, 15375, 15588, 15802, 16016, 16231, 16443, 16657, 16872]]
    hit0 = 1
    data1 = [int(i) for i in [0, 3162, 3484, 3803, 4126, 4447, 4768, 5088, 5410, 5730, 6052, 6372, 6692, 7013, 7335, 7657, 7977, 8298, 8618, 8940, 9260, 9582, 9902, 10223, 10545, 10866, 11187, 11508, 11828, 12150, 12470, 12791, 13112, 13433, 13753, 14076, 14397, 14716, 15038, 15359, 15679, 16000, 16322, 16641, 16963, 17285, 17607, 17926, 18248, 18569, 18889, 19210, 19532, 19851, 20173, 20495, 20815, 21136, 21458, 21777, 22098, 22420, 22739, 23061, 23382, 23702, 24024, 24346, 24666, 24987, 25308]]
    hit1 = 1
    data2 = [int(i) for i in [0, 4217, 4645, 5072, 5501, 5929, 6357, 6786, 7213, 7641, 8070, 8497, 8923, 9351, 9780, 10208, 10636, 11065, 11492, 11920, 12349, 12777, 13203, 13632, 14060, 14488, 14915, 15345, 15771, 16199, 16628, 17056, 17482, 17911, 18339, 18767, 19195, 19623, 20051, 20478, 20908, 21335, 21761, 22190, 22618, 23046, 23475, 23902, 24330, 24758, 25187, 25615, 26040, 26469, 26897, 27325, 27754, 28181, 28609, 29038, 29466, 29894, 30319, 30750, 31177, 31604, 32034, 32460, 32888, 33317, 33745]]
    hit2 = 1
    data3 = [int(i) for i in [0, 5271, 5808, 6342, 6877, 7411, 7946, 8481, 9017, 9551, 10087, 10621, 11156, 11690, 12226, 12761, 13296, 13830, 14366, 14900, 15436, 15970, 16505, 17040, 17575, 18110, 18646, 19180, 19715, 20249, 20785, 21319, 21854, 22390, 22925, 23459, 23993, 24528, 25064, 25598, 26135, 26669, 27204, 27738, 28272, 28807, 29342, 29878, 30414, 30948, 31482, 32017, 32551, 33088, 33622, 34157, 34692, 35227, 35761, 36296, 36830, 37367, 37901, 38437, 38971, 39506, 40040, 40576, 41110, 41646, 42180]]
    hit3 = 1
    # 终结追击
    终结data0 = [int(i) for i in [0, 2952, 3251, 3550, 3850, 4150, 4449, 4749, 5049, 5348, 5648, 5948, 6247, 6546, 6846, 7145, 7444, 7743, 8045, 8345, 8644, 8943, 9243, 9543, 9842, 10141, 10440, 10740, 11040, 11339, 11639, 11939, 12238, 12538, 12838, 13137, 13436, 13735, 14035, 14335, 14633, 14933, 15233, 15532, 15832, 16132, 16432, 16732, 17029, 17329, 17630, 17930, 18229, 18529, 18829, 19128, 19428, 19728, 20027, 20327, 20625, 20925, 21225, 21524, 21823, 22123, 22422, 22722, 23022, 23321, 23621]]
    终结hit0 = 1
    CD = 45.0
    TP成长 = 0.1
    TP上限 = 5
    是否有护石 = 1
    演出时间 = 0.6

    MP = [311, 2612]
    无色消耗 = 2

    def 装备护石(self):
        self.终结hit0 = 3
        self.终结power0 *= 0.47*1.16



class 技能13(被动技能):
    名称 = '月弧'
    所在等级 = 48
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.095 + 0.02 * self.等级, 5)


class 技能14(主动技能):
    名称 = '月舞终结'
    所在等级 = 50
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    MP = [850, 7000]
    # 游戏中实际是5段不一样的伤害，但总和是一致的
    # 分别占比为14% 16% 18% 20% 32%
    data0 = [int(i) for i in [0, 14919, 18379, 21839, 25298, 28759, 32220, 35679, 39137, 42597, 46059, 49518, 52978, 56439, 59899, 63358, 66817, 70278, 73736, 77198, 80659, 84117, 87576, 91035, 94497, 97957, 101416, 104877, 108338, 111796, 115256, 118717, 122175, 125637, 129098, 132556, 136014, 139474, 142936, 146395, 149855]]
    hit0 = 5
    演出时间 = 0.6
    CD = 145

    #月轮舞的冷却不受武器类型影响，但月舞终结是正常受到武器类型影响的


class 技能15(收招技能):
    名称 = '旋刃冲击'
    所在等级 = 60
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    # 本体
    data0 = [int(i) for i in [0, 602, 664, 724, 786, 846, 909, 970, 1031, 1092, 1153, 1214, 1275, 1337, 1398, 1459, 1520, 1581, 1642, 1703, 1765, 1826, 1888, 1948, 2010, 2070, 2132, 2193, 2255, 2315, 2377, 2437, 2499, 2559, 2621, 2682, 2744, 2804, 2866, 2926, 2988, 3049, 3111, 3173, 3233, 3295, 3355, 3417, 3477, 3540, 3600, 3662, 3722, 3784, 3844, 3905, 3968, 4029, 4090, 4151, 4212, 4273, 4334, 4396, 4457, 4518, 4579, 4640, 4701, 4762, 4824]]
    hit0 = 30
    # 终结追击
    终结data0 = [int(i) for i in [0, 675, 743, 812, 880, 948, 1018, 1086, 1154, 1223, 1291, 1359, 1427, 1498, 1566, 1635, 1703, 1771, 1839, 1908, 1977, 2045, 2114, 2182, 2250, 2319, 2387, 2456, 2525, 2593, 2661, 2729, 2799, 2867, 2935, 3005, 3073, 3141, 3210, 3278, 3346, 3415, 3484, 3552, 3621, 3689, 3757, 3825, 3894, 3965, 4034, 4102, 4169, 4237, 4306, 4374, 4443, 4513, 4581, 4648, 4718, 4785, 4853, 4924, 4992, 5059, 5127, 5198, 5266, 5333, 5404]]
    终结hit0 = 5
    CD = 30.0
    TP成长 = 0.1
    TP上限 = 5
    是否有护石 = 1

    MP = [400, 1120]
    无色消耗 = 2

    def 装备护石(self):
        self.hit0 = 35
        self.power0 = 1.07
        self.hit1 = 31
        self.终结power0 *= 0.2*1.07
        self.CDR *= 0.89



class 技能16(收招技能):
    名称 = '陨落螺旋刺'
    所在等级 = 70
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    # 本体
    data0 = [int(i) for i in [0, 2650, 2920, 3188, 3457, 3724, 3995, 4264, 4531, 4802, 5071, 5338, 5608, 5877, 6145, 6414, 6684, 6952, 7221, 7490, 7759, 8027, 8297, 8565, 8834, 9104, 9373, 9640, 9910, 10180, 10447, 10717, 10987, 11254, 11524, 11794, 12061, 12330, 12597, 12868, 13137, 13406, 13675, 13944, 14212, 14482, 14751, 15019, 15289, 15558, 15826, 16094, 16365, 16633, 16901, 17171, 17440, 17708, 17977, 18247, 18516, 18783, 19054, 19321, 19590, 19860, 20127, 20397, 20667, 20936, 21204]]
    hit0 = 3
    data1 = [int(i) for i in [0, 18552, 20436, 22318, 24201, 26082, 27964, 29847, 31729, 33613, 35495, 37377, 39259, 41141, 43023, 44906, 46787, 48671, 50553, 52436, 54317, 56200, 58082, 59965, 61846, 63730, 65612, 67495, 69376, 71259, 73141, 75024, 76905, 78789, 80671, 82554, 84435, 86318, 88200, 90080, 91965, 93848, 95730, 97611, 99494, 101376, 103259, 105139, 107024, 108906, 110789, 112669, 114553, 116434, 118316, 120198, 122083, 123964, 125846, 127728, 129611, 131493, 133375, 135257, 137141, 139023, 140905, 142787, 144670, 146551, 148433]]
    hit1 = 1
    # 终结追击
    终结data0 = [int(i) for i in [0, 5301, 5839, 6376, 6914, 7452, 7989, 8527, 9066, 9603, 10140, 10678, 11217, 11753, 12292, 12828, 13368, 13906, 14442, 14982, 15518, 16056, 16596, 17132, 17670, 18209, 18746, 19283, 19821, 20360, 20898, 21435, 21972, 22511, 23048, 23586, 24122, 24662, 25198, 25737, 26276, 26812, 27351, 27887, 28426, 28965, 29501, 30041, 30578, 31115, 31655, 32191, 32728, 33267, 33805, 34342, 34880, 35417, 35956, 36493, 37031, 37567, 38107, 38645, 39181, 39721, 40257, 40795, 41335, 41871, 42410]]
    终结hit0 = 1
    CD = 50.0
    TP成长 = 0.1
    TP上限 = 5
    是否有护石 = 1
    演出时间 = -0.6

    MP = [800, 1680]
    无色消耗 = 3

    def 装备护石(self):
        self.hit0 = 0
        self.power1 = 2.27


class 技能17(收招技能):
    名称 = '乱空杀'
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    # 本体
    data0 = [int(i) for i in [0, 3140, 3639, 4141, 4642, 5142, 5644, 6144, 6645, 7146, 7647, 8146, 8648, 9149, 9649, 10151, 10651, 11152, 11650, 12151, 12652, 13153, 13653, 14155, 14656, 15156, 15658, 16157, 16658, 17159, 17660, 18160, 18662, 19163, 19663, 20165, 20664, 21165, 21667, 22167, 22668]]
    hit0 = 6
    data1 = [int(i) for i in [0, 12562, 14564, 16569, 18572, 20574, 22576, 24578, 26583, 28585, 30588, 32591, 34592, 36596, 38599, 40601, 42605, 44609, 46610, 48612, 50616, 52619, 54622, 56626, 58628, 60630, 62632, 64636, 66639, 68642, 70644, 72646, 74649, 76653, 78655, 80658, 82663, 84663, 86666, 88669, 90674]]
    hit1 = 1
    # 终结追击
    终结data0 = [int(i) for i in [0, 6280, 7282, 8284, 9285, 10287, 11286, 12289, 13291, 14291, 15293, 16295, 17296, 18298, 19299, 20301, 21303, 22305, 23304, 24305, 25307, 26309, 27309, 28311, 29314, 30315, 31317, 32318, 33319, 34321, 35323, 36322, 37323, 38325, 39328, 40328, 41330, 42332, 43333, 44334, 45336]]
    终结hit0 = 1
    CD = 30.0
    是否有护石 = 1
    演出时间 = 0.2

    MP = [580, 4500]
    无色消耗 = 3

    def 装备护石(self):
        self.倍率 *= 1.17
        self.CDR *= 0.89


class 技能18(被动技能):
    名称 = '极限追击'
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    def 物理攻击力倍率进图(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.08 + 0.02 * self.等级, 5)


class 技能19(收招技能):
    名称 = '月影突袭'
    所在等级 = 80
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    # 本体
    data0 = [int(i) for i in [0, 4849, 5343, 5835, 6326, 6819, 7310, 7802, 8296, 8787, 9279, 9772, 10264, 10754, 11246, 11740, 12232, 12725, 13216, 13708, 14200, 14694, 15186, 15676, 16168, 16661, 17153, 17644, 18138, 18630, 19123, 19614, 20105, 20597, 21091, 21583, 22075, 22567, 23058, 23550, 24042]]
    hit0 = 10
    # 终结追击
    终结data0 = [int(i) for i in [0, 9700, 10686, 11669, 12654, 13638, 14622, 15606, 16592, 17575, 18559, 19543, 20528, 21512, 22495, 23481, 24466, 25448, 26434, 27417, 28402, 29387, 30370, 31355, 32337, 33323, 34306, 35291, 36277, 37259, 38244, 39229, 40213, 41196, 42182, 43166, 44148, 45134, 46118, 47103, 48085]]
    终结hit0 = 1
    CD = 50.0
    演出时间 = 0.6
    是否有护石 = 1

    MP = [800, 6000]
    无色消耗 = 5

    def 装备护石(self):
        self.倍率 *= 1.35


class 技能20(收招技能):
    名称 = '天渊星狱'
    所在等级 = 85
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40

    # 本体
    data0 = [int(i) for i in [0, 411, 506, 601, 696, 792, 887, 983, 1077, 1173, 1268, 1364, 1459, 1554, 1650, 1746, 1840, 1936, 2031, 2127, 2222, 2316, 2412, 2509, 2603, 2698, 2793, 2889, 2985, 3079, 3175, 3270, 3366, 3460, 3556, 3651, 3747, 3842, 3938, 4032, 4130, 4223, 4318, 4414, 4508, 4606, 4699, 4795, 4890, 4987, 5082, 5178, 5271, 5369, 5463, 5559, 5654, 5749, 5845, 5940, 6035, 6128, 6226, 6322, 6416, 6511, 6607, 6702, 6798, 6892, 6988]]
    hit0 = 7 #上一任作者写的8；个人测试7
    data1 = [int(i) for i in [0, 94969, 116991, 139013, 161036, 183056, 205078, 227100, 249122, 271144, 293165, 315189, 337211, 359231, 381254, 403276, 425297, 447320, 469343, 491365, 513387, 535407, 557429, 579452, 601473, 623495, 645518, 667538, 689562, 711583, 733605, 755628, 777649, 799671, 821694, 843714, 865736, 887757, 909781, 931803, 953825, 975847, 997869, 1019889, 1041912, 1063935, 1085957, 1107979, 1130000, 1152021, 1174044, 1196065, 1218088, 1240110, 1262132, 1284155, 1306175, 1328197, 1350220, 1372241, 1394263, 1416286, 1438307, 1460330, 1482349, 1504373, 1526395, 1548417, 1570439, 1592461, 1614481]]
    hit1 = 1
    # 终结追击
    终结data0 = [int(i) for i in [0, 19733, 24310, 28886, 33460, 38037, 42612, 47188, 51765, 56341, 60917, 65494, 70069, 74644, 79222, 83797, 88373, 92950, 97526, 102101, 106676, 111253, 115829, 120403, 124980, 129556, 134132, 138709, 143285, 147861, 152437, 157013, 161589, 166166, 170742, 175315, 179891, 184468, 189044, 193621, 198197, 202772, 207349, 211925, 216500, 221078, 225653, 230229, 234805, 239381, 243957, 248532, 253108, 257683, 262259, 266836, 271412, 275988, 280565, 285140, 289716, 294293, 298869, 303445, 308022, 312596, 317172, 321748, 326324, 330900, 335475]]
    终结hit0 = 1
    CD = 180
    演出时间 = 3

    MP = [2500, 8000]
    无色消耗 = 10



class 技能21(收招技能):
    名称 = '幻灭瞬杀'
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    # 本体
    data0 = [int(i) for i in [0, 15959, 17577, 19196, 20816, 22434, 24053, 25673, 27291, 28910, 30530, 32149, 33767, 35387, 37006, 38624, 40244, 41863, 43481, 45101, 46720, 48339, 49958, 51577, 53197, 54815, 56434, 58054, 59672, 61291, 62911, 64529, 66148, 67768, 69386, 71005, 72625, 74243, 75862, 77482, 79100]]
    hit0 = 5
    # 终结追击
    终结data0 = [int(i) for i in [0, 15959, 17577, 19196, 20816, 22434, 24053, 25673, 27291, 28910, 30530, 32149, 33767, 35387, 37006, 38624, 40244, 41863, 43481, 45101, 46720, 48339, 49958, 51577, 53197, 54815, 56434, 58054, 59672, 61291, 62911, 64529, 66148, 67768, 69386, 71005, 72625, 74243, 75862, 77482, 79100]]
    终结hit0 = 1
    CD = 60
    演出时间 = 0.5

    MP = [960, 7200]
    无色消耗 = 7



class 技能22(被动技能):
    名称 = '绝命时刻'
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)


class 技能23(收招技能):
    名称 = '影·万古星辰'
    所在等级 = 100
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40

    # 本体
    data0 = [int(i) for i in [0, 19629, 24182, 28733, 33285, 37838, 42389, 46941, 51493, 56045, 60596, 65149, 69700, 74253, 78805, 83356, 87909, 92460, 97012, 101564, 106116, 110667, 115220, 119772, 124323, 128876, 133427, 137979, 142531, 147083, 151636, 156187, 160739, 165291, 169843, 174394, 178947, 183498, 188050, 192603, 197154]]
    hit0 = 13
    # 终结追击
    终结data0 = [int(i) for i in [0, 51038, 62873, 74707, 86543, 98378, 110213, 122047, 133883, 145718, 157552, 169387, 181223, 193058, 204892, 216727, 228563, 240397, 252232, 264067, 275903, 287737, 299572, 311407, 323242, 335077, 346912, 358747, 370582, 382417, 394252, 406086, 417922, 429757, 441592, 453426, 465262, 477097, 488931, 500766, 512602]]
    终结hit0 = 1
    CD = 290
    演出时间 = 6

    MP = [4028, 9667]
    无色消耗 = 15



class classChange(Character):
    def __init__(self):
        self.实际名称 = 'rogue'
        self.名称 = '隐夜·刺客'
        self.角色 = '暗夜使者'

        self.职业 = '刺客'
        self.武器选项 = ['匕首', '双剑']
        self.输出类型选项 = ['物理百分比']
        self.防具精通属性 = ['力量']
        self.类型 = '物理百分比'
        self.武器类型 = '匕首'
        self.防具类型 = '皮甲'
        技能列表 = []
        技能序号 = {}
        i = 0
        while i >= 0:
            try:
                tem = eval('技能'+str(i)+'()')
                tem.基础等级计算()
                技能序号[tem.名称] = i
                技能列表.append(tem)
                i += 1
            except:
                i = -1
        self.技能栏 = 技能列表
        self.技能序号 = 技能序号
        self.buff = 1.77

        super().__init__()

    def 职业特殊计算(self):
        匕首精通 = self.get_skill_by_name('匕首精通')
        双剑精通 = self.get_skill_by_name('双剑精通')
        # 同步匕首和双剑精通等级，防止白金和时装有问题
        双剑精通.等级 = 匕首精通.等级 = max(双剑精通.等级,匕首精通.等级)